/************************************************
 * Author       :   XXY
 * Blog         :   https://www.cnblogs.com/jzyl
 * Gitee        :   https://gitee.com/xiaobaichong
 * Email        :   1047185209@QQ.com
 * FileName     :   ISystemComponent.cs
 * CreateData   :   2023/4/28 16:09:53
 * UnityVersion :   2020.3.33f1c2
 * Description  :   系统生命周期接口
************************************************/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Hotfix
{
    /// <summary>
    /// 系统即为行为
    /// 系统生命周期接口
    /// </summary>
    internal interface ISystemComponent
    {
        /// <summary>
        /// 添加系统时调用
        /// </summary>
        public void Awake();
        /// <summary>
        /// Awake 之后执行（请注意：对于不同Entity而言Start并不会一定在Awake之后执行）
        /// </summary>
        public void Start();
        /// <summary>
        /// 系统启用执行
        /// </summary>
        public void OnEnable();
        /// <summary>
        /// 系统禁用执行
        /// </summary>
        public void OnDisable();
        /// <summary>
        /// 每帧执行
        /// </summary>
        public void Update();
        /// <summary>
        /// Update之后执行
        /// </summary>
        public void LateUpdate();
        /// <summary>
        /// 固定物理帧执行
        /// </summary>
        public void FixedUpdate();
        /// <summary>
        /// 系统销毁执行
        /// </summary>
        public void OnDestroy();
    }

    /// <summary>
    /// 系统生命周期回调接口类型
    /// </summary>
    internal enum SystemCallbackType
    {
        Awake,
        Start,
        OnEnable,
        OnDisable,
        Update,
        LateUpdate,
        FixedUpdate,
        OnDestroy
    }
}